#ifndef __LENS_LENS1_H__
#define __LENS_LENS1_H__

#define 	ZOOM_SPEED_SECTION	12	//镜头变焦步长分段

#define LENS1_DGAIN_FILTER 			0x708A
#define LENS1_PID_PARAM 				0x66F0
#define LENS1_PWM_FILTER				0x0E10
#define LENS1_HALL_CURRENT_OFFSET  	0x7C20
#define LENS1_HALL_GAIN_FILTER		0x06C4
#define LENS1_IRIS_EN      			0x0400
#define LENS1_IRIS_SPEED 			0x0C00

/*不同于41908驱动的E平台驱动参数，重新定义*/
#define LENS1_HALL_CURRENT_OFFSET_EAGLE  0x20
#define LENS1_HALL_GAIN_FILTER_EAGLE		500


#define LENS1_MIN_ZOOM_MOTOR_POS	    0
#define LENS1_MAX_ZOOM_MOTOR_POS	    5564//5188
#define LENS1_LENS_ORIGIN		    -2128
#define LENS1_LENS_LZ1 				5336//6880
#define LENS1_LENS_LZ5 				5564//5184
#define LENS1_LENS_LZ4				1300
#define LENS1_LENS_LF6 				4136 
#define LENS1_MAXSTEP_PAL_NTSC		120	
#define LENS1_MAXSTEP_50 			76
#define LENS1_MAXSTEP_60 			60
#define LENS1_ZOOM_AF_POS			2000
#define LENS1_LENS_CURVE_NUM		    52	 // 曲线点数

#define LENS1_MAX_FOCALLENGTH        93.954  // 最大焦距
#define LENS1_MIN_FOCALLENGTH        5.331   // 最小焦距


/*镜头通过数据结构体，定义不变的镜头通用数据*/
typedef struct
{
	SW_UINT8 Magnification; 		// 倍率
	SW_UINT8 CurveNum; 			// 曲线点数	
	SW_UINT8 MotorShiftStep; 	//  电机起步速度
	SW_INT32 ZoomMotorMaxStep; 		// ZOOM 电机行走的最大速度
	SW_INT32 FocusMotorMaxStep; 		// FOCUS 电机行走的最大速度
	SW_INT32 ZoomMotorMinStep; 	//zoom 电机行走的最小速度
	SW_INT32 FocusMotorMinStep; // focus 电机行走的最小速度
	SW_UINT8 (*ZoomSpdTbl)[ZOOM_SPEED_SECTION];   // 变倍速度表
	SW_INT16 (*ZoomSpdCoordTbl)[ZOOM_SPEED_SECTION]; //对应变倍速率的坐标表格
	SW_INT16 *Lens1MDif; 			// 1m 曲线预测offset值在1.5米基础上
	SW_INT16 *Lens30CMDif; 			// 30Cm 曲线预测offset值在1.5米基础上
	SW_INT16 *Lens10CMDif; 			// 10Cm 曲线预测offset值在1.5米基础上
	SW_UINT8 Lens1MDifNum; 			// 1M预测点个数
	SW_UINT8 Lens30CMDifNum;			// 30CM预测点个数
	SW_UINT8 Lens10CMDifNum;			// 10CM预测点个数
	SW_INT16 ZoomCoordMax; 			// ZOOM 最大值
	SW_INT16 ZoomCoordMin; 			//ZOOM 最小值
	SW_INT16 FocusCoordMax; 		//FOCUS 坐标最大值
	SW_INT16 FocusCoordMin; 		//FOCUS 坐标最小值
	SW_INT16 *ZoomMagniCoordTbl; 	// 倍率表格
	SW_INT16 ZoomTraceStartCoord; // 变倍跟踪开始
	SW_INT16 LensLZ1Coord; 			// LZ1
	SW_INT16 LensOrigion; 			// FOCUS LENS ORIGION
	SW_INT16 LensLZ4; 				// 对应FOCUS最大的ZOOM值(偏离zoom pi)
	SW_INT16 LensLZ5; 				// zoom 最大
	SW_INT16 LensInfFocusMax; 		// 无穷远focus的最高点 (PI校正用)
	SW_INT16 LensInfFocusAll; 		// 无穷远FOCUS 最高到最低的距离(PI校正用)
	SW_INT16 *ICRCompOffset1Tbl;	// ICR打开后曲线补偿表
	SW_INT16 *ICRCompOffset2Tbl; 	// ICR打开后曲线补偿表
	SW_INT16 *CurveOffsetUpper; 	//曲线上偏值
	SW_INT16 *CurveOffsetLower; 	//曲线下偏值
	SW_INT16 *IRUpperOffset; 		//红外曲线上偏值
	SW_INT16 *IRLowerOffset; 		//红外曲线下偏值
	SW_INT16 *ZoomSection;  		//zoom分段
	SW_FLOAT *FocusMagniCoordTbl;    //焦距表 隐私遮蔽视场角
	SW_FLOAT MaxFocalLength; // 最大焦距，未支持时需填写为默认1.0
	SW_FLOAT MinFocalLength; // 最小焦距, 同上
}LENS_NORMAL_DATA;


extern LENS_NORMAL_DATA LensNormalDataLENS1;
#endif //__LENS_LENS1_H__
